//package com.shop.shoporder;
//
//
//import com.shop.shoporder.common.QRCodeUtil;
//import com.shop.shoporder.entity.MergeImage;
//import com.sun.image.codec.jpeg.JPEGCodec;
//import com.sun.image.codec.jpeg.JPEGEncodeParam;
//import com.sun.image.codec.jpeg.JPEGImageEncoder;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.swing.*;
//import java.awt.*;
//import java.awt.font.TextAttribute;
//import java.awt.image.BufferedImage;
//import java.io.*;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import java.text.AttributedCharacterIterator;
//import java.text.AttributedString;
//
//
//@RunWith(SpringRunner.class)
//@SpringBootTest
//public class TesQR {
//
//    /**
//     * 链接切取
//     */
//    @Test
//    public void testStr(){
//
//String s="http://www.ycsqd.shop/Share?shareId=91864&url=%2F%23%2Fpages%2Fdetail%2Fdetail%3Fquery%3D%257B%2522id%2522%253A1438%252C%2522specId%2522%253A1266%257D";
////String s="http://www.ycsqd.shop?shareId=91864&url=%2F%23%2Fpages%2Fdetail%2Fdetail%3Fquery%3D%257B%2522id%2522%253A1438%252C%2522specId%2522%253A1266%257D";
//        int n=s.indexOf("/Share");
//        if(n!=-1){
//            System.out.println("----->"+s.substring(n));
//        }
//
//
//String[] str=s.split("&url=");
//        System.out.println(str[0]);
//        System.out.println(str[1]);
//
//
//
//    }
//
//    /**
//     *
//     * 字符长度
//     */
//    @Test
//    public void testFont(){
//
//        String name = "贵央视是发疯阿法";
//        name = String.format("%-24s", name);
//        System.out.println("The String Start is:" + name + ":End:" + name.length());
//
//    }
//
//
//
//    @Test
//    public void testQR() {
////        String srcImg="/Users/admin/Documents/ewm_img/logo.png";
//        String srcImg = null;
//        String destImg = "/Users/admin/Documents/ewm_img/";
//        try {
//
//
//            String src = "http://xlspic.ycsqd.com/1552625700053.png";
//
//            URL url = new URL(src);
//
//            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//            //设置请求方式为"GET"
//            conn.setRequestMethod("GET");
//            //超时响应时间为5秒
//            conn.setConnectTimeout(5 * 1000);
//            //通过输入流获取图片数据
//            InputStream inStream = conn.getInputStream();
//
//            byte[] data = readInputStream(inStream);
//
//            File imageFile = new File(destImg + "dddd.png");
//            //创建输出流
//            FileOutputStream outStream = new FileOutputStream(imageFile);
//            //写入数据
//            outStream.write(data);
//
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//
//    }
//
//
//    public static byte[] readInputStream(InputStream inStream) throws Exception {
//        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
//        //创建一个Buffer字符串
//        byte[] buffer = new byte[1024];
//        //每次读取的字符串长度，如果为-1，代表全部读取完毕
//        int len = 0;
//        //使用一个输入流从buffer里把数据读取出来
//        while ((len = inStream.read(buffer)) != -1) {
//            //用输出流往buffer里写入数据，中间参数代表从哪个位置开始读，len代表读取的长度
//            outStream.write(buffer, 0, len);
//        }
//        //关闭输入流
//        inStream.close();
//        //把outStream里的数据写入内存
//        return outStream.toByteArray();
//    }
//
//
//    @Test
//    public void testZooImg() {
//        String srcPath = "/Users/admin/Downloads/erwm-81606794.png";
//
//        String tarPath = "/Users/admin/Downloads/123.png";
//
//        try {
//            MergeImage.zoomImage(srcPath, tarPath, 100, 100);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    @Test
//    public void testQRCode() {
//        String text = "www.baidu.com";
//
////        String logoUrl="/Users/admin/Documents/ewm_img/logo.png";
//        String logoUrl = null;
//        String erWMImgUrl = "/Users/admin/Downloads/shop_ewm";
//        try {
//            String URl = QRCodeUtil.encode(text, logoUrl, erWMImgUrl, true);//二维码路径
//            System.out.println("----->" + URl);
//
//            //合成
//            String bigPath = "/Users/admin/Downloads/shop_ewm/bigImg.png";
//            String smallPath = URl;
//            MergeImage.mergeImage(bigPath, smallPath, 400, 800);
//
//            String proPath = "/Users/admin/Downloads/shop_ewm/pro.jpg";
//            //合成商品图
//            MergeImage.mergeImage(bigPath, proPath, 0, 138);
//
//
//            //添加文字
//            String content="传奇天路贵州茅台";
//            String tarPath = "/Users/admin/Downloads/shop_ewm/tarimg.png";
//            String fontType="微软雅黑";
//
//            createMark(bigPath,tarPath,content,null,1,fontType,28,610,238,Color.BLACK);
//
//            content="贵阳的夏天，真是爽，歪歪百合话也荷兰，卡斯蒂略发啦阿斯，顿发空间的！";
//
//            createMark(tarPath,tarPath,content,null,1,fontType,22,610,170,Color.BLACK);
//
////            Color color = new Color(0, 0, 0, 200);//水印图片色彩以及透明度
////           String  srcImgPath = AddWaterMark.waterPress(bigPath, bigPath, color, 14, content);
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
//    }
//
//    @Test
//    public void testMark(){
//        String bigPath = "/Users/admin/Downloads/shop_ewm/bigImg.png";
//        String tarPath = "/Users/admin/Downloads/shop_ewm/tarimg.png";
//        String tarPath1 = "/Users/admin/Downloads/shop_ewm/tarimg0000.png";
//
//        String fontType="微软雅黑";
//        String content="传奇天路贵州茅台北京路上的号航拉开距离法克拉路口";
//
//        String content1="别日一禅净，贵阳黔南第一山之称！";
//
//    createMark(bigPath, tarPath,
//                content, null, 1, fontType, 15, 400, 100,Color.BLACK );
//
//        createMark(tarPath, tarPath1,
//                content, null, 1, fontType, 26, 400, 200,Color.BLACK );
//
//    }
//
//
//
//    public static void createMark(String souchFilePath, String targetFilePath,
//                                  String markContent, Color markContentColor, float qualNum,
//                                  String fontType, int fontSize, int w, int h, Color color) {
//        markContentColor = color;
//        /* 构建要处理的源图片 */
//        ImageIcon imageIcon = new ImageIcon(souchFilePath);
//        /* 获取要处理的图片 */
//        Image image = imageIcon.getImage();
//        // Image可以获得图片的属性信息
//        int width = image.getWidth(null);
//        int height = image.getHeight(null);
//        // 为画出与源图片的相同大小的图片（可以自己定义）
//        BufferedImage bImage = new BufferedImage(width, height,
//                BufferedImage.TYPE_INT_RGB);
//        // 构建2D画笔
//        Graphics2D g = bImage.createGraphics();
//        /* 设置2D画笔的画出的文字颜色 */
//        g.setColor(markContentColor);
//        /* 设置2D画笔的画出的文字背景色 */
//        g.setBackground(Color.white);
//        /* 画出图片 */
//        g.drawImage(image, 0, 0, null);
//
//
//        //文字叠加,自动换行叠加
//        int tempCharLen = 0;//单字符长度
//        int tempLineLen = 0;//单行字符总长度临时计算
//        int lineCharCount = 10;//每行多少个字
//        int s = 0;//每行的长度
//
//        //处理换行
//        StringBuffer sb = new StringBuffer();
//        for (int i = 0; i <markContent.length(); i++) {
//
//            char tempChar = markContent.charAt(i);
//            System.out.println("------>"+tempChar);
//            if(' '==tempChar){
//                continue;
//            }
//            tempCharLen = getCharLen(tempChar, g);
//
//            tempLineLen += tempCharLen;
//
//            s = lineCharCount * tempCharLen;
//
//
//            if (tempLineLen >s) {
//                //长度已经满一行,进行文字叠加
//                /* --------对要显示的文字进行处理-------------- */
//                AttributedString ats = new AttributedString(sb.toString());
//
//                Font font = new Font(fontType, Font.PLAIN, fontSize);
//                g.setFont(font);
//                /* 消除java.awt.Font字体的锯齿 */
//                g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
//                        RenderingHints.VALUE_ANTIALIAS_ON);
//                /* 消除java.awt.Font字体的锯齿 */
//
//                // font = g.getFont().deriveFont(30.0f);
//                ats.addAttribute(TextAttribute.FONT, font, 0, sb.length());
//
//                AttributedCharacterIterator iter = ats.getIterator();
//                /* 添加水印的文字和设置水印文字出现的内容 ----位置 */
//
//                g.drawString(iter, width - w, height - h);
//                h=h-32;
//                sb.delete(0, sb.length());//清空内容,重新追加
//
//                tempLineLen = 0;
//            }
//
//            sb.append(tempChar);//追加字符
//        }
//
//        /* --------对要显示的文字进行处理-------------- */
//        AttributedString ats = new AttributedString(sb.toString());
//
//        Font font = new Font(fontType, Font.PLAIN, fontSize);
//        g.setFont(font);
//        /* 消除java.awt.Font字体的锯齿 */
//        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
//                RenderingHints.VALUE_ANTIALIAS_ON);
//        /* 消除java.awt.Font字体的锯齿 */
//
//        // font = g.getFont().deriveFont(30.0f);
//        ats.addAttribute(TextAttribute.FONT, font, 0, sb.length());
//
//        AttributedCharacterIterator iter = ats.getIterator();
//        /* 添加水印的文字和设置水印文字出现的内容 ----位置 */
//
//        g.drawString(iter, width - w, height - h);
//
//
//        /* --------对要显示的文字进行处理-------------- */
//        g.dispose();// 画笔结束
//        try {
//            // 输出 文件 到指定的路径
//            FileOutputStream out = new FileOutputStream(targetFilePath);
//            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
//            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bImage);
//            param.setQuality(qualNum, true);
//            encoder.encode(bImage, param);
//            out.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//
//
////    public static void main(String[] args) {
////        Test.createMark("d:\\image\\daili.jpg", "d:\\image\\601.jpg",
////                "这是用java程序给图片添加的文字水印", null, 1, "方正楷体简体", 30, 700, 300,
////                Color.GRAY);
////    }
//
//
//
//
//
//    public static int getCharLen(char c, Graphics2D g) {
//        return g.getFontMetrics(g.getFont()).charWidth(c);
//    }
//
//
//        }
//
